/*

* 文件名：data_struct.hpp

* 描述： 常量定义，数据结构定义

* 编写人：lil_leap

* 编写时间：2022-12-05

* 修改人：Itsuki

* 修改时间：2022-12-10

*/
#ifndef DATA_STRUCT_HPP_
#define DATA_STRUCT_HPP_

#include<bits/stdc++.h>
using namespace std;

static string type[15]={"AQI","PM2.5","PM2.5_24h","PM10","PM10_24h","SO2","SO2_24h","NO2","NO2_24h","O3","O3_24h","O3_8h","O3_8h_24h","CO","CO_24h"};
static string cities_names[375] = {"北京","天津","石家庄","唐山","秦皇岛","邯郸","保定","张家口","承德","廊坊","沧州","衡水","邢台","太原","呼和浩特","沈阳","大连","长春","哈尔滨","上海","南京","苏州","南通","连云港","徐州","扬州","无锡","常州","镇江","泰州","淮安","盐城","宿迁","杭州","宁波","温州","绍兴","湖州","嘉兴","台州","舟山","金华","衢州","丽水","合肥","福州","厦门","南昌","济南","青岛","郑州","武汉","长沙","广州","深圳","珠海","佛山","中山","江门","东莞","惠州","肇庆","南宁","海口","重庆","成都","贵阳","昆明","拉萨","西安","兰州","西宁","银川","乌鲁木齐","湘潭","株洲","包头","鄂尔多斯","营口","丹东","盘锦","葫芦岛","泉州","临沂","德州","聊城","滨州","淄博","枣庄","烟台","潍坊","济宁","泰安","日照","威海","东营","韶关","汕头","湛江","茂名","梅州","汕尾","河源","阳江","清远","潮州","揭阳","云浮","玉溪","菏泽","大同","长治","临汾","阳泉","赤峰","鞍山","抚顺","本溪","锦州","吉林","齐齐哈尔","牡丹江","大庆","芜湖","马鞍山","九江","洛阳","安阳","开封","焦作","平顶山","三门峡","宜昌","荆州","岳阳","常德","张家界","桂林","北海","柳州","三亚","绵阳","宜宾","攀枝花","泸州","自贡","德阳","南充","遵义","曲靖","咸阳","铜川","延安","宝鸡","渭南","金昌","嘉峪关","石嘴山","克拉玛依","巴音郭楞州","寿光","章丘","即墨","胶南","胶州","莱西","平度","蓬莱","招远","莱州","荣成","文登","乳山","吴江","昆山","常熟","张家港","太仓","句容","江阴","宜兴","金坛","溧阳","海门","临安","富阳","义乌","诸暨","瓦房店","信阳","周口","漳州","晋城","朔州","晋中","运城","忻州","吕梁","乌海","通辽","呼伦贝尔","巴彦淖尔","乌兰察布","兴安盟","锡林郭勒盟","阿拉善盟","阜新","辽阳","铁岭","朝阳","四平","辽源","通化","白山","松原","白城","延边朝鲜族自治州","鸡西","鹤岗","双鸭山","伊春","佳木斯","七台河","黑河","绥化","大兴安岭地区","蚌埠","淮南","淮北","铜陵","安庆","黄山","滁州","阜阳","宿州","六安","亳州","池州","宣城","莆田","三明","南平","龙岩","宁德","景德镇","萍乡","新余","鹰潭","赣州","吉安","宜春","抚州","上饶","鹤壁","新乡","濮阳","许昌","漯河","南阳","商丘","驻马店","黄石","十堰","襄阳","鄂州","荆门","孝感","黄冈","咸宁","随州","恩施土家族苗族自治州","衡阳","邵阳","益阳","郴州","永州","怀化","娄底","湘西州","梧州","防城港","钦州","贵港","玉林","百色","贺州","河池","来宾","崇左","广元","遂宁","内江","乐山","眉山","广安","达州","雅安","巴中","资阳","阿坝藏族羌族自治州","甘孜州","甘孜藏族自治州","凉山彝族自治州","六盘水","安顺","铜仁地区","毕节","黔西南布依族苗族自治州","黔东南苗族侗族自治州","黔东南州","黔南布依族苗族自治州","保山","昭通","丽江","普洱","临沧","楚雄州","红河州","文山州","西双版纳州","大理州","德宏州","怒江州","迪庆州","昌都","山南","日喀则","那曲地区","那曲","阿里地区","林芝","汉中","榆林","安康","商洛","白银","天水","武威","张掖","平凉","酒泉","庆阳","定西","陇南","临夏回族自治州","甘南州","海东地区","海北藏族自治州","黄南藏族自治州","海南藏族自治州","果洛藏族自治州","玉树藏族自治州","海西蒙古族藏族自治州","吴忠","中卫","固原","吐鲁番地区","哈密地区","昌吉州","博尔塔拉蒙古自治州","阿克苏地区","克孜勒苏柯尔克孜自治州","喀什地区","和田地区","伊犁哈萨克州","塔城地区","阿勒泰地区","石河子","五家渠","三沙","兰州新区","赣江新区","儋州","雄安新区","西咸新区"};
const int NUM_COLUMNS = 378;
extern string str_columns[NUM_COLUMNS];
/*
数据结构说明：
    每个城市都有一个city类型的数组元素，city类型包括城市名称，存储数据num数组。
    num数据为按照日期、时间的，数据类型为cities_data的二维数组。
    cities_data数据负责存储每个污染类型的数值。
    aqi_average存储城市名称和aqi平均值，用于sort对城市aqi数值排序。
*/
struct cities_data
{
    double a[16];
};

struct city
{
    string name;
    cities_data num[400][30];//365*24
    int aqi_aver;
};

extern city cities[380];

struct aqi_average
{
    string city_name;
    double aqi_aver;
};

#endif